package com.ruoyi.statistic.mapper;


import com.ruoyi.statistic.domain.StatisticStudentEmploymentInfo;
import com.ruoyi.statistic.domain.vo.KeyValueVo;
import com.ruoyi.statistic.domain.vo.TopNVo;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * 就业数据管理Mapper接口
 *
 * @author linyang
 * @date 2023-02-16
 */
public interface StatisticStudentEmploymentInfoMapper {

    /**
     * 查询就业数据管理
     *
     * @param id 就业数据管理主键
     * @return 就业数据管理
     */
    public StatisticStudentEmploymentInfo selectStatisticStudentEmploymentInfoById(Long id);

    /**
     * 查询就业数据管理列表
     *
     * @param statisticStudentEmploymentInfo 就业数据管理
     * @return 就业数据管理集合
     */
    public List<StatisticStudentEmploymentInfo> selectStatisticStudentEmploymentInfoList(StatisticStudentEmploymentInfo statisticStudentEmploymentInfo);

    /**
     * 判断是否存在指定日期的文件
     *
     * @param date
     * @return
     */
    public List<StatisticStudentEmploymentInfo> selectStatisticStudentEmploymentInfoByDate(Date date);

    /**
     * 新增就业数据管理
     *
     * @param statisticStudentEmploymentInfo 就业数据管理
     * @return 结果
     */
    public int insertStatisticStudentEmploymentInfo(StatisticStudentEmploymentInfo statisticStudentEmploymentInfo);

    /**
     * 修改就业数据管理
     *
     * @param statisticStudentEmploymentInfo 就业数据管理
     * @return 结果
     */
    public int updateStatisticStudentEmploymentInfo(StatisticStudentEmploymentInfo statisticStudentEmploymentInfo);

    /**
     * 删除就业数据管理
     *
     * @param id 就业数据管理主键
     * @return 结果
     */
    public int deleteStatisticStudentEmploymentInfoById(Long id);

    /**
     * 批量删除就业数据管理
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteStatisticStudentEmploymentInfoByIds(Long[] ids);


    /**
     * 判断指定日期的数据是否存在
     *
     * @return
     */
    public int checkStatisticStudentEmploymentInfoByDate(@Param("year") String year, @Param("date") Date date);


    /**
     * @return
     */
    public int deleteStatisticStudentEmploymentInfoByDate(@Param("year") String year,@Param("date") Date date);


    /**
     * 获取当前年份最新数据的日期
     * @param year
     * @return
     */
    public Date selectMaxDateByYear(String year);



    /**
     * 获取前N名的系别
     *
     * @param vo
     * @return
     */
    public List<KeyValueVo> selectTopNDepartment(TopNVo vo);


    /**
     * 获取前N名的专业
     *
     * @param vo
     * @return
     */
    public List<KeyValueVo> selectTopNCounsellor(TopNVo vo);


    /**
     * 获取前N名的组织
     *
     * @param vo
     * @return
     */
    public List<KeyValueVo> selectTopNGroup(TopNVo vo);
}
